Coordinated radio fine time measurement

ABSTRACT

Coordinated radio fine time measurement is provided via sending, from a client device, a ranging request to a first radio; receiving a first response sent at a first time from the first radio over a first channel; receiving a second response sent at the first time from a second radio over a second channel; and calculating, based on times of flight for the first response and the second response, a location of the client device relative to the first radio and to the second radio. Coordinated radio fine time measurement is also proved via in response to receiving, at an Access Point (AP), a ranging request from a client device and determining to respond using multiple channels: sending, both at a first time, a first response from a first radio over a first channel a second response from a second radio over a different channel.

TECHNICAL FIELD

Embodiments presented in this disclosure generally relate wirelessnetwork management. More specifically, embodiments disclosed hereinprovide for locating client devices relative to the Access Points (APs)providing a wireless network.

BACKGROUND

In a wireless network, the relative locations of the various clientdevices and Access Points (APs) can be used to determine which APs areassociated with which client devices, the transmission powers to use forsignals, the provision of localized services, and the like. Accordingly,network operators can employ various ranging techniques using varioustechnologies to determine where individual devices are located relativeto one another, and use the resulting location data to set variouscharacteristics of the network. However, current ranging techniques canleave much to be desired when applied in an active network setting;consuming large amounts of bandwidth to return low-accuracy locationdeterminations.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above-recited features of the presentdisclosure can be understood in detail, a more particular description ofthe disclosure, briefly summarized above, may be had by reference toembodiments, some of which are illustrated in the appended drawings. Itis to be noted, however, that the appended drawings illustrate typicalembodiments and are therefore not to be considered limiting; otherequally effective embodiments are contemplated.

FIG. 1 illustrates an example network environment, according toembodiments of the present disclosure.

FIG. 2 illustrates isochronic ranging of the devices, according toembodiments of the present disclosure.

FIG. 3 is a flowchart of a method for responding to a ranging requestfrom a client device by a given AP to offer improved rangingmeasurements to a client device, according to embodiments of the presentdisclosure.

FIG. 4 is a flowchart of a method to coordinate several APs usingmultilink aggregation to determine the location of a client device inthe physical environment, according to embodiments of the presentdisclosure.

FIG. 5 is a flowchart of a method for passive location determination,according to embodiments of the present disclosure

FIG. 6 illustrates hardware of a computing device, according toembodiments of the present disclosure.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures. It is contemplated that elements disclosed in oneembodiment may be beneficially used in other embodiments withoutspecific recitation.

DESCRIPTION OF EXAMPLE EMBODIMENTS Overview

One embodiment presented in this disclosure provides a method,comprising: sending, from a client device, a ranging request to a firstradio; receiving a first response sent at a first time from the firstradio over a first channel; receiving a second response sent at thefirst time from a second radio over a second channel; and calculating,based on a first time of flight for receiving the first response fromthe first radio and a second time of flight for receiving the secondresponse from the second radio, a location of the client device relativeto the first radio and to the second radio.

One embodiment presented in this disclosure provides a method,comprising: in response to receiving, at an Access Point (AP), a rangingrequest from a client device, determining whether to respond using onechannel or multiple channels; in response to determining to respondusing multiple channels: sending a first ranging response at a firsttime from a first radio over a first channel; and sending a secondresponse at the first time from a second radio over a second channeldifferent from the first channel.

One embodiment presented in this disclosure provides a method,comprising: receiving a first ranging signal sent from a first accesspoint (AP) via a first channel; receiving a second ranging signal sentfrom a second AP via a second channel, wherein the first AP and thesecond AP are coordinated to send the first ranging signal and thesecond ranging signal simultaneously; and determining, based on a firsttime of flight of the first ranging signal from the first AP to a clientdevice and a second time of flight of the second ranging signal from thesecond AP to the client device, a location of the client device.

Example Embodiments

The present disclosure provides for Fine Time Measurement (FTM) inwireless networks to locate client devices relative to the Access Points(APs) providing the wireless network. These relative locations can becoupled with the known location of the APs to position the client devicein the environment. The device determining the location of the clientdevice (either the client device itself or the APs in the network) usesa Time of Flight (ToF) and/or a Round Trip Delay measurement (viatimestamps of when a request is transmitted versus received) and thespeed of signal propagation to determine a relative distances betweenparticular APs and the client device. In some embodiments, bycoordinating when the ranging signals are sent from separate radios inthe environment, the ranging signals can occupy less bandwidth and/orprovide a more accurate determination of where the client device islocated (e.g., due to experiencing the same environmental effects andthe client device being located at the same instantaneous location)compared to ranging techniques that send ranging signals at differenttimes.

FIG. 1 illustrates an example network environment 100, according toembodiments of the present disclosure. Several APs 110 a-c (generally,AP 110) provide network connectivity for various client devices 120 a-c(generally, client device 120). Ranges 130 a-i (generally, range 130)between the client devices 120 and the APs 110 are also illustrated forpurposes of discussion.

An AP 110 may include various networking devices configured to providewireless networks according to various networking standards or RadioAccess Technologies (RAT) (e.g., IEEE 802.11 or “WiFi” networks,BLUETOOTH® networks, “cellular” (including various generations andsubtypes thereof, such as Long Term Evolution (LTE) and Fifth GenerationNew Radio (5G NR)) networks, Citizens Broadband Radio Service (CBRS)networks, proprietary networks). Example hardware as may be included inan AP 110 is discussed in greater detail in regard to FIG. 6.

A client device 120 may include any computing device that is configuredto wirelessly connect to one or more APs 110. Example client devices 120can include, but are not limited to: smart phones, feature phones,tablet computers, laptop computers, desktop computers, Internet ofThings (IoT) devices, and the like. Various standards may refer to aclient device 120 as a client device, user equipment, mobile station(STA), or the like. Example hardware as may be included in a clientdevice 120 is discussed in greater detail in regard to FIG. 6.

As shown in FIG. 1, the first client device 120 a has established afirst association 140 a (generally, association 140) with the second AP110 b and is located at a first range 130 a from the first AP 110 a, asecond range 130 b from the second AP 110 b, and a third range 130 cfrom the third AP 110 c. Similarly, the second client device 120 b hasestablished a second association 140 b with the first AP 110 a and islocated at a fourth range 130 d from the first AP 110 a, a fifth range130 e from the second AP 110 b, and a sixth range 130 f from the thirdAP 110 c. The third client device 120 c has not established anassociation 140 with any of the APs 110, but is located at a seventhrange 130 g from the first AP 110 a, an eighth range 130 h from thesecond AP 110 b, and a ninth range 130 i from the third AP 110 c. Eachof the client devices 120 a-c can request range determinations from oneor more of the APs 110 a-c and receive associated responses, regardlessof whether the given client device 120 is associated with a given AP110. Similarly, the client devices 120 a-c can receive requests forrange determines from one or more of the APs 110 a-c and send associatedresponses, regardless of whether the given client device 120 isassociated with a given AP 110.

FIG. 2 illustrates isochronic ranging 200 of the devices, according toembodiments of the present disclosure. The ranging 200 illustrated inFIG. 2 shows perimeters 210 a-d (generally, perimeter 210) of equaltimes-of-flight (ToF) 220 a-d (generally, TOF 220) to/from an associatedAP 110, and several perimeters 210 can be defined for a single AP 110representing different TOFs 220. For example, a first perimeter 210 afrom the first AP 110 a can represent a first TOF 220 a of Xmilliseconds (ms) and a fourth perimeter 210 d from the first AP 110 canrepresent a fourth TOF 220 d of Y ms.

Although the second perimeter 210 b, the third perimeter 210 c, and thefourth perimeter 210 d are illustrated as circular in FIG. 2, the firstperimeter 210 a is illustrated as having an irregular shape. Even shapes(e.g., circles) are the result of the propagation medium being the same(or similar) between the AP 110 and the perimeter 210, while unevenshapes can be due to intervening objects affecting the speed of signalpropagation between the AP 110 and the perimeter 210. For example, aperimeter 210 may have an irregular shape due to walls, columns, trees,furniture, or other objects in some directions from the AP 110 slowingthe signal's propagation compared to propagation through air in otherdirections. Accordingly, to account for uneven propagation, a networkcontroller and/or AP 110 can map various perimeters 210 having known TOF220 for signals for a given AP 110 to reach a given set of locations.For example, a client device receiving a signal with a TOF 220 of X mscan be located at any point along the first perimeter 210 a, despitethose points being located at different ranges 130 from the first AP 110a. It will be appreciated, however, that before the signals reach theobstructions, the TOF 220 may be even in all directions and define anevenly shaped perimeter 210 (e.g., the fourth perimeter 210 d versus thefirst perimeter 210 a).

The client device 120 can use TOFs 220 with multiple APs 110, or anetwork controller can use TOFs 220 from a client device 120 to multipleAPs 110 to identify a location of the client device 120 in theenvironment. For example, the first TOF 220 a from the first AP 110 aindicates all of the locations that a signal reaches in X ms from thefirst AP 110 a as a first perimeter 210 a, the second TOF 220 b from thesecond AP 110 b indicates all of the locations that a signal reaches inY ms from the second AP 110 b as a second perimeter 210 b, and the thirdrange 130 c from the third AP 110 c indicates all of the that a signalreaches in Z ms from the third AP 110 c as a third perimeter 210 c. Afirst intersection 230 a (generally, intersections 230) indicates apoint X ms from the first AP 110 a, Y ms from the second AP 110 b, and Zms from the third AP 110 c. A second intersection 230 b indicates apoint X ms from the first AP 110 a, Y ms from the second AP 110 b, andnot Z ms from the third AP 110 c. A third intersection 230 c indicates apoint not X ms from the first AP 110 a, Y ms from the second AP 110 b,and Z ms from the third AP 110 c. Accordingly, knowing that a firstclient device 120 a is located X ms from the first AP 110 a, Y ms fromthe second AP 110 b, and Z ms from the third AP 110 c, a device canlocate the first client device 120 a to be at the first intersection 230a.

APs 110 are deployed in the physical environment at known locations toprovide wireless connective to various client devices 120, which may bestatic or mobile in the physical environment. In various embodiments,various assignment and balancing schema can cause a client device 120 toassociate with a given AP 110 in the network environment 100. In variousscenarios, a given client device 120 may associate with the AP 110 thatis closest to the client device 120, offers the strongest signalstrength, guarantees (or at least offers) a highest Quality of Service(QoS) level, etc. In some scenarios, a given client device 120 mayassociate with an AP 110 that is not closest to the client device 120,offers a weaker signal strength than another AP 110, or guarantees oroffers a lower QoS level than another AP 110, etc. due to remainingassociated with a formerly superior (but now inferior) AP 110, loadbalancing within the network environment (e.g., a first AP 110 a mayshift or handover associations to a second AP 110 b when a difference intraffic demands or total associations between the two APs 110 reaches athreshold level), or when an individual device (or network controller)does not yet realize that an AP 110 with better operationalcharacteristics is available to associate with the client device 120.

As described herein, the APs 110 are capable (either individually or aspart of a virtual Basic Service Set (BSS) with other APs 110 providing ashared network) of operation in a multilink mode in which multipleradios (on one or more APs 110) send ranging signals on differentchannels at the same time.

The ranges 130 from the APs 110 to the client devices 120 are indicativeof the distances between the devices, and are measured using on the ToFcalculations, round trip delays, and/or locations on a perimeter 210 forrequests to and responses from the APs 110. In some embodiments, aclient device 120 (as an initiating station (ISTA)) transmits a rangingrequest to one or more APs 110 (whether associated or not), and theAP(s) 110 respond. The APs 110 on receipt of the request can determinewhen to respond and on which available channels. In some embodiments, aclient device (as a receiving station (RSTA)) receives a ranging requestfrom one or more APS 110, and the client device 120 responds. Therequests and responses include timestamps (or other timing indications)that indicate when the individual devices transmit or receive therequests and responses, which are used, along with the speed of signalpropagation to determine the distances between the client device 120 andthe various APs 110 or a perimeter 210 mapped from the location of theAP 110.

The various APs 110 can change how the ranging signals (responses orrequests) are sent to the client devices 120 based on the currentnetworking conditions (including available bandwidth, signal to noiseratio (SNR), number of radios available in the APs 110, networkingcommunications standard used, number of APs 110 in the environment,etc.) accuracy requirements of the client devices 120, powerconsumption, etc. In various embodiments, a FTM frame carried in theranging signal includes one or more of: an identity of the transmittingdevice, a time of transmission, an identity of an intended receivingdevice, a location of the transmitting device (if known), a time ofreceipt and/or transmission of a ranging request (when the rangingsignal is a ranging response), etc.

FIG. 3 is a flowchart of a method 300 for responding to a rangingrequest from a client device 120 by a given AP 110 to offer improvedranging measurements to a client device 120, according to embodiments ofthe present disclosure.

Method 300 begins with block 310, where the AP 110 evaluates networkconditions to determine whether to use multilink radio coordination insending the ranging response. In some embodiments, the AP 110 uses amachine learning (ML) model to evaluate whether the network conditionsindicate to coordinate radios in sending the ranging responses. The MLmodel may use a supervised training dataset (including the previousranging requests and determined locations of client devices 120) andweight various channel conditions to determine whether to coordinate theranging responses. (e.g., when the ML model has learned that a given AP110 using 40 MHz (Megahertz) on the 5 GHz (Gigahertz) channel alwaysresults in greater than 4 m (meters) inaccuracy when the received signalstrength indication (RSSI) for the client device 120 is below −55 dBm(decibel meters)). Thus, when the networking conditions are such (i.e.,using 40 Mhz of bandwidth within the 5 GHz channel for an RSSI below −55dBm) the ML model triggers the use of multilink mode, while otherconditions will trigger use of non-multilink mode. Additionally, the MLmodel can learn if multilink mode enhances the accuracy of the locationdetermination or would be a waste of resources (based on multilinkdeterminations versus non-multilink determination triggers), thusadapting the multilink decision threshold.

At block 320, the AP 110 classifies the request from the client device120 (and/or the client device 120) to evaluate whether to use multilinkor non-multilink mode. For example, when the client device 120 isrequesting a rough location (rather than a precise location), the AP 110can classify the request to select the less bandwidth intensive mode tocomplete the ranging request (potentially providing the client device120 with a more-accurate-than-requested range 130 if the more accuratemode uses less bandwidth). In some embodiments, the association statusof the client device 120 in the network affects how the AP 110classifies the request for evaluating the mode selection and/or channelsused. For example an unassociated client device 120 may receive rangingresponses via a single channel, a guest client devices 120 may receive asingle 80 MHz 5 GHz link or dual links (e.g., two 20 MHz 2.5 GHz linksor 40 MHz 5 GHz links), while enterprise or known devices receivemultilink responses of at least 80 MHz.

At block 330, the AP 110 evaluates whether to use or not select a modebased on training or validation requirements in the network. Forexample, when networking conditions and the request classificationindicate that the AP 110 should send a ranging response using a firstmode, the AP 110 may instead select a second mode to verify theimprovements offered by the first mode relative to the second mode, orto help build a training dataset. Stated differently, the AP 110 candetermine to interleave multilink and non-multilink communications forcomparison against one another for use in later determinations andevaluations, and these ranging signals are used as training signals.These comparisons between operational modes can be included in thetraining dataset for a ML model used to evaluate networking conditions(e.g., as used in block 310) so that a difference in accuracy of using asingle response to determine a location of the client device 120 (e.g.,non-multilink) versus using multiple responses sent over multiplechannels (e.g., multilink) can be identified. For example, when usingmultilink communications versus non-multilink communication results in adifference above a precision threshold, the AP 110 may use multilinkcommunications in future ranging response with similar networkingconditions. Similarly, when using multilink communications versusnon-multilink communication results in a difference below a precisionthreshold, the AP 110 may use non-multilink communications in futureranging response with similar networking conditions.

For example, to evaluate whether multilink communications can providesufficiently more precise location determinations than non-multilinkcommunications to justify the additional use of bandwidth associatedwith multilink mode, the AP 110 can use multilink mode when networkingconditions otherwise call for non-multilink mode. Similarly, the AP 110can use non-multilink mode when networking conditions otherwise call formultilink mode. In a further example, the AP 110 may evaluate whethermultilink communications can reduce the amount of bandwidth used inlocating a client device 120 (e.g., by reducing the number ofrequests/response in a high-noise environment).

At block 340 the AP 110 determines which mode to use based on theevaluations and classifications performed in block 310-330. The AP 110endeavors to use as few resources as possible while still providinglocation exchanges with an accuracy sufficient for the needs of theclient device 120 and the network as a whole. According, requests forranging over narrow channels (e.g., 20 MHz or less) or channels with lowSNRs may use multilink mode to reduce the risk of having to retransmitthe ranging requests (e.g., per block 310), requests from prioritizeddevices may use multilink mode (e.g., per block 320), and requests fromdevices that are otherwise assigned to non-multilink mode mayperiodically use multilink mode (e.g., per block 330).

Method 300 proceeds to block 350 when the AP 110 determines to usenon-multilink mode. In non-multilink mode, the AP 110 sends rangingresponses to the client device 120 using a single radio and associatedchannel over several bursts, and potentially at several different times.For example, an AP 110 may use a first radio associated with a firstchannel to send a first portion of a ranging response to the clientdevice and then use, at a later time, the first radio to transmit asecond portion of the ranging response to the client device 120 over thefirst channel.

Method 300 proceeds to block 360 when the AP 110 determines to usemultilink mode. In multilink mode, the AP 110 uses two (or more) radiosincluded in the AP 110 to send ranging responses at the same time ondifferent channels. One potential advantage of multilink mode is thatthe two (or more) ranging signals sent from the corresponding radios ofthe AP 110 experience the same channel effects, and the receiving clientdevice 120 is located at the same location (cf., a client device 120being moved between receiving ranging signals sent at different times).Another potential advantage of multilink mode is that different channelsused by the two (or more) radios offer more bandwidth than if any of theradios were used independently, thus allowing the ranging signals to useless time to transmit the same amount of data. A further potentialadvantage is that by sending data on different channels, interferenceconfined to one of the channels does not affect the other channels, thusthe ranging determination can be more resilient to environmentalinterference.

At block 360 the AP 110 determines selects which channels (and radios)to use when sending a ranging signal to the client device 120. Invarious embodiments, the AP 110 identifies the radios with Line of Sight(LOS) to the client device 120 and the associated channels for thoseradios (e.g., via mechanisms in IEEE 802.11az). In some embodiments, theAP 110 selects two (or more) channels that have similar interferencecharacteristics, prioritizing the similar channels with the highestRSSIs. For example, the AP 110 identifies a first interference level ona first channel and a second interference level on a second channel anddetermines whether a difference in the interference levels satisfies aninterference similarity threshold before selecting the first and secondchannels or a different set of channels with a more similar differencein interference levels.

In various embodiments, the AP 110 uses the previous selections ofradios/channels to select the radios/channels to use in subsequentranging determinations. For example, consider at a first time a firstradio transmitting a first ranging signal on a first channel and asecond radio transmitting a second ranging signal that is sent on asecond channel. Continuing the example, when updating the location ofthe client device 120 at a later time, the first radio transmits a thirdranging signal on the second channel and the second radio transmits afourth ranging signal on the first channel. Accordingly, the AP 110 cancycle through or swap various radio: channel selections to ensure thatranging signals are sent by each of the radios using each of theavailable channels.

At block 370 the AP 110 sends ranging responses to the client device 120using multiple radios and with multiple corresponding channels (e.g.,selected per block 360). For example, an AP 110 may use a first radioassociated with a first channel and a second radio associated with asecond channel to send a ranging response to the client device 120 at afirst time. As will be appreciated, because the AP 110 is using two (ormore) channels at the same time, the same amount of data can be carriedto the client device 120 in less time than if using a single channel,thus shortening the amount of time needed to transmit a ranging signal.

FIG. 4 is a flowchart of a method 400 to coordinate several APs 110using multilink aggregation to determine the location of a client device120 in the physical environment, according to embodiments of the presentdisclosure.

Method 400 begins with block 410 in response to an AP 110 receiving aranging request from a client device 120. When a given AP 110 in anetwork operating as a virtual Basic Service Set (BSS) receives aranging request from a client device 120, the AP 110 (or a networkcontroller) coordinates with neighboring APs 110 in the shared networkto enable a dual ranging response. A dual ranging response involves to(or more) APs 110 that are located at different locations in thephysical environment sending ranging signals at the same time.

At block 420 the network coordinates which neighboring APs 110 respondto the client device 120, and what channels each AP 110 uses for dualranging and the time that the ranging response are to be sent. Each AP110 uses a different channel to transmit at the same time, so that aclient device 120 capable of receiving simultaneous range exchanges(e.g., via multiple receiving antennas) can do so.

In various embodiments, the APs 110 use a static mapping to determinewhich APs 110 use which radios to send ranging signals to the clientdevice 120. Because the radios of the APs can be aimed and/or focused invarious directions, the APs 110 may indicate which radios (and theassociated frequencies) are available for dual ranging based on whethera given radio has LOS with the client device so that radios without LOSare deprioritized when coordinating the APs 110. For example, if a firstAP 110 a has a first radio with LOS to the client device 120 and asecond radio without LOS to the client device, the first AP 110 acoordinates with other APs 110 so that the first AP 110 a preferentiallyuses the first radio (and not the second radio). After determining whichradios have LOS to the client device 120, the APs 110 coordinate whichradios to use so that the radios with the strongest Received SignalStrength Indication (RSSI) with the client device 120 are prioritizedfor use.

In various embodiments, the APs 110 use a dynamic mapping to determinewhich APs 110 use which radios to send ranging signals to the clientdevice 120. Similarly to static mapping, in dynamic mapping, the radios(and associated frequencies) without LOS are excluded from use, and aschedule is created that uses the radios/channels with LOS. For example,when the first through third APs 110 a-c each have three radios (withassociated channels) available for multilink ranging, a schedule canindicate that: at time₁ AP₁ 110 a uses channel₁, AP₂ 110 b useschannel₂, and AP₃ 110 c uses channel₃; at time₂ AP₁ 110 a uses channel₂,AP₂ 110 b uses channel₃, and AP₃ 110 c uses channel₁; and at time₃ AP₁110 a uses channel₃, AP₂ 110 b uses channel₁, and AP₃ 110 c useschannel₂. However, if the radio associated with channel₁ on AP₁ 110 adoes not have LOS to the client device 120, the schedule may instead be:at time₁ AP₁ 110 a does not transmit, AP₂ 110 b uses channel₂, and AP₃110 c uses channel₃; at time₂ AP₁ 110 a uses channel₂, AP₂ 110 b useschannel₃, and AP₃ 110 c uses channel₁; and at time₃ AP₁ 110 a useschannel₃, AP₂ 110 b uses channel₁, and AP₃ 110 c uses channel₂. Stateddifferently, given the excluded radios without LOS, a schedule iscreated for bursts of ToF measurements where the APs 110 cycle throughthe various channels that do have LOS.

At block 430, the APs 110 transmit ranging signals according to theschedule/frequency mapping coordinated (according to block 420). Two ormore APs 110 transmit ranging signals at the same time on the differentassigned channels, and may transmit several bursts of ranging signals atdifferent times using the same channels (e.g., a first AP 110 a uses afirst channel at time₁ and time₂ whereas a second AP 110 b consistentlyuses a second channel at time₁ and time₂) or swapping channels accordingthe schedule/frequency mapping (e.g., a first AP 110 a uses a firstchannel at time₁ and a second channel at time₂ whereas a second AP 110 buses the second channel at time₁ and the first channel at time₂).

FIG. 5 is a flowchart of a method 500 for passive locationdetermination, according to embodiments of the present disclosure. Inmethod 500, neither the APs 110 nor the client devices 120 activelyrequest ranging signals, but instead the APs 110 transmit rangingsignals (to one another) at coordinated times, so that a client device120 receiving those ranging signals can identify a relative positionbased on hyperbolic intersection resolution.

Method 500 begins at block 510, where a client device 120 receives aranging signal from a corresponding AP 110. For example, a first rangingsignal from a first AP 110 a, a second ranging signal from a second AP110 b, a third ranging signal from a third AP 110 c, etc. The APs 110coordinate to send the ranging signals at the same time, and may rely ona network controller or a master AP 110 to designate when to send theranging signals, and what channels individual APs 110 use to send theranging signals on.

The APs 110 coordinate when to exchange ranging signals, and dependingon the number of APs 110 coordinating the exchange, may direct the FTMframes in different ways. For example, when two neighboring APs 110(e.g., a first AP 110 a and a second AP 110 b) exchange ranging signals,both APs 110 send the ranging signals at the same time, although theclient device 120 may receive the ranging signals at different times dueto propagation speed of the ranging signals over different distances (orat the same time if equidistant from the two APs 110). In someembodiments, APs 110 transmitting ranging signals at the same coordinatewhat frequency bands to transmit the ranging signals in so that eachtransmitting AP 110 uses a different frequency band or bands (e.g., whenusing multilink communications) or so that each pair of APs 110 uses asingle channel (although different pairs of APs 110 can use differentchannels at the same time).

Accordingly, by sending ranging signals at the same time rather thanwaiting to receive a ranging signal from another AP 110, the two APs 110can use less airtime, and the ranging signals (e.g., AP₁-to-AP₂ andAP₂-to-AP₁) are affected by the same channel conditions in theenvironment. In various embodiments, the client device 120 can receiveranging signals sent from multiple pairs of APs 110 at the same time orsets of ranging signals sent at different times to identify the locationof the client device 120. For example, when a first AP 110 a is capableof using multilink transmission, the pair of a first AP 110 a and asecond AP 110 b can use a first channel to send ranging signals to eachother at a first time (e.g., AP₁-to-AP₂ and AP₂-to-AP₁ are sent at time₁on channel₁) and the pair of the first AP 110 a and a third AP 110 c canuse a second channel to send ranging signals to each other at the firsttime (e.g., AP₁-to-AP₃ and AP₃-to-AP₁ are sent at time₁ on channel₂).

In some embodiments, when three (or more) APs 110 exchange rangingsignals, APs 110 send the ranging signals at the same time, but do notsend paired ranging signals. Stated differently, a first AP 110 a thatsends a first ranging signal to a second AP 110 b does not expect toreceive a second ranging signal from the second AP 110 b. Rather, thesecond AP 110 b sends the second ranging signal to a third AP 110 c,which sends a third ranging signal to the first AP 110 a; forming atriplet. As will be appreciated, circuitous transmissions that involvefour or more APs 110 transmitting FTM frames to one AP 110 and expectingto receive an FTM frame from a different AP 110 are also contemplated bythe present disclosure. These ranging signals, similarly to the pairedsignal example, are transmitted from the respective APs 110 at the sametime, and when a client device 120 has received at least three FTMframes, the client device 120 can make a location determination withoutwaiting for further ranging signals.

At block 520, the client device 120 determines the TOF 220 for rangingsignals received thus far. These TOF readings allow the client device120 to determine a range 130 from a transmitting AP 110, which mayinclude determining that the client device 120 is located on a perimeter210 that defines a series of locations that are equidistant from thetransmitting AP 110 based on the propagation speed of the ranging signaland how long the ranging signal took to arrive to that location. Invarious embodiments, the client device 120 determines the TOF 220 for agiven ranging signal based on a time stamp or other known time oftransmission for the ranging signal.

At block 530, the client device 120 determines whether at least threeranging signals have been received. The ranging signals that arereceived may all be sent at a first time (e.g., AP₁-to-AP₂, AP₂-to-AP₃,and AP₃-to-AP₁ all at time₁ or AP₁-to-AP₂, AP₂-to-AP₁, AP₃-to-AP₁, andAP₁-to-AP₃ all at time₁) and received at different times by the clientdevice 120 or may be sent at different times (e.g., AP₁-to-AP₂ andAP₂-to-AP₁ at time₁ and AP₁-to-AP₂ and AP₂-to-AP₁ at time₂).

When the client device 120 has not yet received at least three rangingsignals, method 500 returns to block 510, where the client device 120waits to receive additional ranging signals. In various embodiments, dueto differences in times of flight due to differences in distances fromthe client device 120 to the other APs 110, the ranging signals receivedat subsequent iterations of block 510 may be sent at the same time, orat different times (e.g., in a second burst from a given pair of APs110.

When the client device has received at least three ranging signals,method 500 proceeds to block 540. At block 540, the client device 120calculates its location based on the times of flight of the rangingsignals from known locations of the transmitting APs 110 and a point ofintersection 230 of the three ranges 130 determined from the times offlight. Method 500 may then conclude.

FIG. 6 illustrates hardware of a computing device 600, as may be used inan AP 110 or a client device 120 described in the present disclosure.The computing device 600 includes a processor 610, a memory 620, andcommunication interfaces 630. The processor 610 may be any processingelement capable of performing the functions described herein. Theprocessor 610 represents a single processor, multiple processors, aprocessor with multiple cores, and combinations thereof. Thecommunication interfaces 630 facilitate communications between thecomputing device 600 and other devices. The communications interfaces630 are representative connectors and controllers for wirelesscommunications antennas and various wired communication ports. Invarious embodiments the communications interfaces 630 may connect to andcontrol several different antennas configured to transmit and receivesignals at various wavelengths in various communications bands. Thememory 620 may be either volatile or non-volatile memory and may includeRAM, flash, cache, disk drives, and other computer readable memorystorage devices. Although shown as a single entity, the memory 620 maybe divided into different memory storage elements such as RAM and one ormore hard disk drives.

As shown, the memory 620 includes various instructions that areexecutable by the processor 610 to provide an operating system 621 tomanage various functions of the computing device 600 and one or moreapplications 622 to provide various functionalities to users of thecomputing device 600, which include one or more of the functions andfunctionalities described in the present disclosure. In variousembodiments, the memory 620 includes isochronic maps 623 that indicatethe locations in the environment associated with various TOFs 220 from agiven AP 110 and/or known locations of the APs 110 in the environment tohelp locate client devices 120 according to embodiments described in thepresent disclosure.

In the current disclosure, reference is made to various embodiments.However, the scope of the present disclosure is not limited to specificdescribed embodiments. Instead, any combination of the describedfeatures and elements, whether related to different embodiments or not,is contemplated to implement and practice contemplated embodiments.Additionally, when elements of the embodiments are described in the formof “at least one of A and B,” it will be understood that embodimentsincluding element A exclusively, including element B exclusively, andincluding element A and B are each contemplated. Furthermore, althoughsome embodiments disclosed herein may achieve advantages over otherpossible solutions or over the prior art, whether or not a particularadvantage is achieved by a given embodiment is not limiting of the scopeof the present disclosure. Thus, the aspects, features, embodiments andadvantages disclosed herein are merely illustrative and are notconsidered elements or limitations of the appended claims except whereexplicitly recited in a claim(s). Likewise, reference to “the invention”shall not be construed as a generalization of any inventive subjectmatter disclosed herein and shall not be considered to be an element orlimitation of the appended claims except where explicitly recited in aclaim(s).

As will be appreciated by one skilled in the art, the embodimentsdisclosed herein may be embodied as a system, method or computer programproduct. Accordingly, embodiments may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,embodiments may take the form of a computer program product embodied inone or more computer readable medium(s) having computer readable programcode embodied thereon.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, Radio Frequency (RF), etc., or anysuitable combination of the foregoing.

Computer program code for carrying out operations for embodiments of thepresent disclosure may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present disclosure are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatuses(systems), and computer program products according to embodimentspresented in this disclosure. It will be understood that each block ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the block(s) of the flowchart illustrationsand/or block diagrams.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other device to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the block(s) of the flowchartillustrations and/or block diagrams.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other device to cause aseries of operational steps to be performed on the computer, otherprogrammable apparatus or other device to produce a computer implementedprocess such that the instructions which execute on the computer, otherprogrammable data processing apparatus, or other device provideprocesses for implementing the functions/acts specified in the block(s)of the flowchart illustrations and/or block diagrams.

The flowchart illustrations and block diagrams in the Figures illustratethe architecture, functionality, and operation of possibleimplementations of systems, methods, and computer program productsaccording to various embodiments. In this regard, each block in theflowchart illustrations or block diagrams may represent a module,segment, or portion of code, which comprises one or more executableinstructions for implementing the specified logical function(s). Itshould also be noted that, in some alternative implementations, thefunctions noted in the block may occur out of the order noted in theFigures. For example, two blocks shown in succession may, in fact, beexecuted substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved. It will also be noted that each block of the block diagramsand/or flowchart illustrations, and combinations of blocks in the blockdiagrams and/or flowchart illustrations, can be implemented by specialpurpose hardware-based systems that perform the specified functions oracts, or combinations of special purpose hardware and computerinstructions.

In view of the foregoing, the scope of the present disclosure isdetermined by the claims that follow.

1. A method, comprising: sending, from a client device, a rangingrequest to a first radio; receiving a first response sent at a firsttime from the first radio over a first channel; receiving a secondresponse sent at the first time from a second radio over a secondchannel; and calculating, based on a first time of flight for receivingthe first response from the first radio and a second time of flight forreceiving the second response from the second radio, a location of theclient device relative to the first radio and to the second radio. 2.The method of claim 1, wherein the first radio and the second radio areincluded in one Access Point (AP).
 3. The method of claim 1, wherein thefirst radio is included in a first AP and the second radio is includedin a second AP, wherein the first AP and the second AP are part of ashared network, wherein the first AP and the second AP are located atdifferent physical locations.
 4. The method of claim 1, furthercomprising: receiving a third response sent at a second time from thefirst radio over the second channel; receiving a fourth response sent atthe second time from the second radio over the first channel; andupdating the location of the client device, based on a third time offlight for receiving the third response from the first radio and afourth time of flight for receiving the fourth response from the secondradio.
 5. The method of claim 1, wherein the client device is notassociated with a network provided by the first radio and the secondradio, and wherein the client device receives the second response fromthe second radio in response to the network determining to send atraining signal.
 6. The method of claim 1, wherein the client device isassociated with a network provided by the first radio and the secondradio as a guest, and wherein the client device receives the secondresponse from the second radio in response to the network determining tosend a training signal.
 7. The method of claim 1, wherein the firstchannel and the second channel are selected at least in part based on:the first radio and the second radio having line of sight to the clientdevice; and the first channel and the second channel satisfying aninterference similarity threshold. 8-14. (canceled)
 15. A method,comprising: receiving a first ranging signal sent from a first accesspoint (AP) via a first channel; receiving a second ranging signal sentfrom a second AP via a second channel, wherein the first AP and thesecond AP are coordinated to send the first ranging signal and thesecond ranging signal simultaneously; and determining, based on a firsttime of flight of the first ranging signal from the first AP to a clientdevice and a second time of flight of the second ranging signal from thesecond AP to the client device, a location of the client device.
 16. Themethod of claim 15, wherein determining the location of the clientdevice includes determining a first perimeter from the first AP based onthe first time of flight, a second perimeter from the second AP based onthe second time of flight and an intersection between the firstperimeter and the second perimeter.
 17. The method of claim 15, furthercomprising: receiving a third ranging signal sent from the first AP viathe second channel; receiving a fourth ranging signal sent from thesecond AP via the first channel, wherein the third ranging signal andthe fourth ranging signal are sent at a second time after the firsttime; and wherein determining the location of the client device isfurther based on a third time of flight of the third ranging signal fromthe first AP to the client device and a fourth time of flight of thefourth ranging signal from the second AP to the client device.
 18. Themethod of claim 15, further comprising: receiving a third ranging signalsent from a third AP via a third channel, wherein the third rangingsignal and the second ranging signal are sent at the first time, whereinthe first ranging signal is transmitted from the first AP to the secondAP, wherein the second ranging signal is transmitted from the second APto the third AP, and wherein the third ranging signal is transmittedfrom the third AP to the first AP.
 19. The method of claim 18, furthercomprising: receiving a fourth ranging signal sent from the second AP tothe third AP via the third channel; receiving a fifth ranging signalsent from the third AP to the first AP via the first channel, whereinthe fourth ranging signal and the fifth ranging signal are sent at asecond time after the first time; and in response to identifying that aradio associated with the third channel lacks Line of Sight to theclient device and that the first channel and the second channel arescheduled for use by the second AP and the third AP at the second time,scheduling the first AP to not transmit a ranging signal at the secondtime.
 20. (canceled)
 21. The method of claim 15, wherein the first APand the second AP are coordinated to send the first ranging signal andthe second ranging signal simultaneously in response to a rangingrequest sent from the client device.
 22. A method, comprising: sending,from a client device, a single ranging request to a first radio;receiving, at the client device, a first response associated with thesingle ranging request that is sent at a first time from the first radioover a first channel; receiving, at the client device, a second responseassociated with the single ranging response sent at the first time froma second radio over a different channel based on the single rangingrequest; calculating a first time of flight for receiving the firstresponse from the first radio; calculating a second time of flight forreceiving the second response from the second radio; calculating, basedon the first time of flight and the second time of flight, a location ofthe client device relative to the first radio and to the second radio.23. The method of claim 22, further comprising: receiving a thirdresponse associated with the single ranging request that is sent at asecond time from the first radio over the second channel; receiving afourth response associated with the single ranging request that is sentat the second time from the second radio over the first channel; andupdating the location of the client device, based on a third time offlight for receiving the third response from the first radio and afourth time of flight for receiving the fourth response from the secondradio.
 24. The method of claim 22, wherein: the first radio and thesecond radio provide a wireless network; the client device is notassociated with the wireless network; and the client device receives thesecond response from the second radio on the second channel in responseto the network determining to send a training signal to the clientdevice when networking conditions otherwise indicate that the wirelessnetwork should provide non-multilink ranging responses on a singlechannel.
 25. The method of claim 22, wherein: the first radio and thesecond radio provide a wireless network; the client device is associatedwith the wireless network as a guest; and the client device receives thesecond response from the second radio on the second channel in responseto the network determining to send a training signal to the clientdevice when networking conditions otherwise indicate that the wirelessnetwork should provide non-multilink ranging responses on a singlechannel.
 26. The method of claim 22, wherein the first channel and thesecond channel are selected at least in part based on: the first radioand the second radio both having line of sight to the client device; andthe first channel and the second channel satisfying an interferencesimilarity threshold to one another.
 27. The method of claim 22, furthercomprising: sending a second ranging request from the client device tothe first radio and the second radio; receiving a first ranging signalsent from the first radio via the first channel; receiving a secondranging signal sent from the second radio via the second channel,wherein the first radio and the second radio are coordinated to send thefirst ranging signal and the second ranging signal simultaneously at asecond time; and determining, based on a third time of flight of thefirst ranging signal from the first AP to the client device and a fourthtime of flight of the second ranging signal from the second AP to theclient device, an updated location of the client device.
 28. The methodof claim 22, wherein the client device is associated with the firstradio and is not associated with the second radio in a wireless networkbasic service set.